/*
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
/*
 * This code was generated by https://code.google.com/p/google-apis-client-generator/
 * (build: 2013-06-26 16:27:34 UTC)
 * on 2013-07-13 at 16:22:04 UTC 
 * Modify at your own risk.
 */

package com.rom.ratethehell.api.services.sneakapic;

/**
 * Service definition for Sneakapic (v7).
 *
 * <p>
 * sneak-a-pic service
 * </p>
 *
 * <p>
 * For more information about this service, see the
 * <a href="" target="_blank">API Documentation</a>
 * </p>
 *
 * <p>
 * This service uses {@link SneakapicRequestInitializer} to initialize global parameters via its
 * {@link Builder}.
 * </p>
 *
 * @since 1.3
 * @author Google, Inc.
 */
@SuppressWarnings("javadoc")
public class Sneakapic extends com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient {

  // Note: Leave this static initializer at the top of the file.
  static {
    com.google.api.client.util.Preconditions.checkState(
        com.google.api.client.googleapis.GoogleUtils.MAJOR_VERSION == 1 &&
        com.google.api.client.googleapis.GoogleUtils.MINOR_VERSION >= 15,
        "You are currently running with version %s of google-api-client. " +
        "You need at least version 1.15 of google-api-client to run version " +
        "1.15.0-rc of the  library.", com.google.api.client.googleapis.GoogleUtils.VERSION);
  }

  /**
   * The default encoded root URL of the service. This is determined when the library is generated
   * and normally should not be changed.
   *
   * @since 1.7
   */
  public static final String DEFAULT_ROOT_URL = "https://sneak-apic.appspot.com/_ah/api/";

  /**
   * The default encoded service path of the service. This is determined when the library is
   * generated and normally should not be changed.
   *
   * @since 1.7
   */
  public static final String DEFAULT_SERVICE_PATH = "sneakapic/v7/";

  /**
   * The default encoded base URL of the service. This is determined when the library is generated
   * and normally should not be changed.
   */
  public static final String DEFAULT_BASE_URL = DEFAULT_ROOT_URL + DEFAULT_SERVICE_PATH;

  /**
   * Constructor.
   *
   * <p>
   * Use {@link Builder} if you need to specify any of the optional parameters.
   * </p>
   *
   * @param transport HTTP transport, which should normally be:
   *        <ul>
   *        <li>Google App Engine:
   *        {@code com.google.api.client.extensions.appengine.http.UrlFetchTransport}</li>
   *        <li>Android: {@code newCompatibleTransport} from
   *        {@code com.google.api.client.extensions.android.http.AndroidHttp}</li>
   *        <li>Java: {@link com.google.api.client.googleapis.javanet.GoogleNetHttpTransport#newTrustedTransport()}
   *        </li>
   *        </ul>
   * @param jsonFactory JSON factory, which may be:
   *        <ul>
   *        <li>Jackson: {@code com.google.api.client.json.jackson2.JacksonFactory}</li>
   *        <li>Google GSON: {@code com.google.api.client.json.gson.GsonFactory}</li>
   *        <li>Android Honeycomb or higher:
   *        {@code com.google.api.client.extensions.android.json.AndroidJsonFactory}</li>
   *        </ul>
   * @param httpRequestInitializer HTTP request initializer or {@code null} for none
   * @since 1.7
   */
  public Sneakapic(com.google.api.client.http.HttpTransport transport, com.google.api.client.json.JsonFactory jsonFactory,
      com.google.api.client.http.HttpRequestInitializer httpRequestInitializer) {
    this(new Builder(transport, jsonFactory, httpRequestInitializer));
  }

  /**
   * @param builder builder
   */
  Sneakapic(Builder builder) {
    super(builder);
  }

  @Override
  protected void initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest<?> httpClientRequest) throws java.io.IOException {
    super.initialize(httpClientRequest);
  }

  /**
   * An accessor for creating requests from the AckMessages collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.AckMessages.List request = sneakapic.ackMessages().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public AckMessages ackMessages() {
    return new AckMessages();
  }

  /**
   * The "ackMessages" collection of methods.
   */
  public class AckMessages {

    /**
     * Create a request for the method "ackMessages.ackMessages".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link AckMessagesRequest#execute()} method to invoke the remote operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsAckRequest}
     * @return the request
     */
    public AckMessagesRequest ackMessages(com.rom.ratethehell.api.services.sneakapic.model.RequestsAckRequest content) throws java.io.IOException {
      AckMessagesRequest result = new AckMessagesRequest(content);
      initialize(result);
      return result;
    }

    public class AckMessagesRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse> {

      private static final String REST_PATH = "ackMessages";

      /**
       * Create a request for the method "ackMessages.ackMessages".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link AckMessagesRequest#execute()} method to invoke the remote
       * operation. <p> {@link AckMessagesRequest#initialize(com.google.api.client.googleapis.services.A
       * bstractGoogleClientRequest)} must be called to initialize this instance immediately after
       * invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsAckRequest}
       * @since 1.13
       */
      protected AckMessagesRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsAckRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse.class);
      }

      @Override
      public AckMessagesRequest setAlt(java.lang.String alt) {
        return (AckMessagesRequest) super.setAlt(alt);
      }

      @Override
      public AckMessagesRequest setFields(java.lang.String fields) {
        return (AckMessagesRequest) super.setFields(fields);
      }

      @Override
      public AckMessagesRequest setKey(java.lang.String key) {
        return (AckMessagesRequest) super.setKey(key);
      }

      @Override
      public AckMessagesRequest setOauthToken(java.lang.String oauthToken) {
        return (AckMessagesRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public AckMessagesRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (AckMessagesRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public AckMessagesRequest setQuotaUser(java.lang.String quotaUser) {
        return (AckMessagesRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public AckMessagesRequest setUserIp(java.lang.String userIp) {
        return (AckMessagesRequest) super.setUserIp(userIp);
      }

      @Override
      public AckMessagesRequest set(String parameterName, Object value) {
        return (AckMessagesRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the Comment collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.Comment.List request = sneakapic.comment().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public Comment comment() {
    return new Comment();
  }

  /**
   * The "comment" collection of methods.
   */
  public class Comment {

    /**
     * Create a request for the method "comment.comment".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link CommentRequest#execute()} method to invoke the remote operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsCommentPictureRequest}
     * @return the request
     */
    public CommentRequest comment(com.rom.ratethehell.api.services.sneakapic.model.RequestsCommentPictureRequest content) throws java.io.IOException {
      CommentRequest result = new CommentRequest(content);
      initialize(result);
      return result;
    }

    public class CommentRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse> {

      private static final String REST_PATH = "comment";

      /**
       * Create a request for the method "comment.comment".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link CommentRequest#execute()} method to invoke the remote
       * operation. <p> {@link CommentRequest#initialize(com.google.api.client.googleapis.services.Abstr
       * actGoogleClientRequest)} must be called to initialize this instance immediately after invoking
       * the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsCommentPictureRequest}
       * @since 1.13
       */
      protected CommentRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsCommentPictureRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse.class);
      }

      @Override
      public CommentRequest setAlt(java.lang.String alt) {
        return (CommentRequest) super.setAlt(alt);
      }

      @Override
      public CommentRequest setFields(java.lang.String fields) {
        return (CommentRequest) super.setFields(fields);
      }

      @Override
      public CommentRequest setKey(java.lang.String key) {
        return (CommentRequest) super.setKey(key);
      }

      @Override
      public CommentRequest setOauthToken(java.lang.String oauthToken) {
        return (CommentRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public CommentRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (CommentRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public CommentRequest setQuotaUser(java.lang.String quotaUser) {
        return (CommentRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public CommentRequest setUserIp(java.lang.String userIp) {
        return (CommentRequest) super.setUserIp(userIp);
      }

      @Override
      public CommentRequest set(String parameterName, Object value) {
        return (CommentRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the DeleteProfile collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.DeleteProfile.List request = sneakapic.deleteProfile().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public DeleteProfile deleteProfile() {
    return new DeleteProfile();
  }

  /**
   * The "deleteProfile" collection of methods.
   */
  public class DeleteProfile {

    /**
     * Create a request for the method "deleteProfile.deleteProfile".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link DeleteProfileRequest#execute()} method to invoke the remote
     * operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsDeleteProfileRequest}
     * @return the request
     */
    public DeleteProfileRequest deleteProfile(com.rom.ratethehell.api.services.sneakapic.model.RequestsDeleteProfileRequest content) throws java.io.IOException {
      DeleteProfileRequest result = new DeleteProfileRequest(content);
      initialize(result);
      return result;
    }

    public class DeleteProfileRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse> {

      private static final String REST_PATH = "deleteProfile";

      /**
       * Create a request for the method "deleteProfile.deleteProfile".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link DeleteProfileRequest#execute()} method to invoke the
       * remote operation. <p> {@link DeleteProfileRequest#initialize(com.google.api.client.googleapis.s
       * ervices.AbstractGoogleClientRequest)} must be called to initialize this instance immediately
       * after invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsDeleteProfileRequest}
       * @since 1.13
       */
      protected DeleteProfileRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsDeleteProfileRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse.class);
      }

      @Override
      public DeleteProfileRequest setAlt(java.lang.String alt) {
        return (DeleteProfileRequest) super.setAlt(alt);
      }

      @Override
      public DeleteProfileRequest setFields(java.lang.String fields) {
        return (DeleteProfileRequest) super.setFields(fields);
      }

      @Override
      public DeleteProfileRequest setKey(java.lang.String key) {
        return (DeleteProfileRequest) super.setKey(key);
      }

      @Override
      public DeleteProfileRequest setOauthToken(java.lang.String oauthToken) {
        return (DeleteProfileRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public DeleteProfileRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (DeleteProfileRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public DeleteProfileRequest setQuotaUser(java.lang.String quotaUser) {
        return (DeleteProfileRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public DeleteProfileRequest setUserIp(java.lang.String userIp) {
        return (DeleteProfileRequest) super.setUserIp(userIp);
      }

      @Override
      public DeleteProfileRequest set(String parameterName, Object value) {
        return (DeleteProfileRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the GetProfile collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.GetProfile.List request = sneakapic.getProfile().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public GetProfile getProfile() {
    return new GetProfile();
  }

  /**
   * The "getProfile" collection of methods.
   */
  public class GetProfile {

    /**
     * Create a request for the method "getProfile.getProfile".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link GetProfileRequest#execute()} method to invoke the remote operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsProfileRequest}
     * @return the request
     */
    public GetProfileRequest getProfile(com.rom.ratethehell.api.services.sneakapic.model.RequestsProfileRequest content) throws java.io.IOException {
      GetProfileRequest result = new GetProfileRequest(content);
      initialize(result);
      return result;
    }

    public class GetProfileRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesProfileResponse> {

      private static final String REST_PATH = "getProfile";

      /**
       * Create a request for the method "getProfile.getProfile".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link GetProfileRequest#execute()} method to invoke the remote
       * operation. <p> {@link GetProfileRequest#initialize(com.google.api.client.googleapis.services.Ab
       * stractGoogleClientRequest)} must be called to initialize this instance immediately after
       * invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsProfileRequest}
       * @since 1.13
       */
      protected GetProfileRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsProfileRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesProfileResponse.class);
      }

      @Override
      public GetProfileRequest setAlt(java.lang.String alt) {
        return (GetProfileRequest) super.setAlt(alt);
      }

      @Override
      public GetProfileRequest setFields(java.lang.String fields) {
        return (GetProfileRequest) super.setFields(fields);
      }

      @Override
      public GetProfileRequest setKey(java.lang.String key) {
        return (GetProfileRequest) super.setKey(key);
      }

      @Override
      public GetProfileRequest setOauthToken(java.lang.String oauthToken) {
        return (GetProfileRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public GetProfileRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (GetProfileRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public GetProfileRequest setQuotaUser(java.lang.String quotaUser) {
        return (GetProfileRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public GetProfileRequest setUserIp(java.lang.String userIp) {
        return (GetProfileRequest) super.setUserIp(userIp);
      }

      @Override
      public GetProfileRequest set(String parameterName, Object value) {
        return (GetProfileRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the GetSpecificPicture collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.GetSpecificPicture.List request = sneakapic.getSpecificPicture().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public GetSpecificPicture getSpecificPicture() {
    return new GetSpecificPicture();
  }

  /**
   * The "getSpecificPicture" collection of methods.
   */
  public class GetSpecificPicture {

    /**
     * Create a request for the method "getSpecificPicture.getSpecificPicture".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link GetSpecificPictureRequest#execute()} method to invoke the remote
     * operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsSpecificPictureRequest}
     * @return the request
     */
    public GetSpecificPictureRequest getSpecificPicture(com.rom.ratethehell.api.services.sneakapic.model.RequestsSpecificPictureRequest content) throws java.io.IOException {
      GetSpecificPictureRequest result = new GetSpecificPictureRequest(content);
      initialize(result);
      return result;
    }

    public class GetSpecificPictureRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesPictureResponse> {

      private static final String REST_PATH = "getSpecificPicture";

      /**
       * Create a request for the method "getSpecificPicture.getSpecificPicture".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link GetSpecificPictureRequest#execute()} method to invoke the
       * remote operation. <p> {@link GetSpecificPictureRequest#initialize(com.google.api.client.googlea
       * pis.services.AbstractGoogleClientRequest)} must be called to initialize this instance
       * immediately after invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsSpecificPictureRequest}
       * @since 1.13
       */
      protected GetSpecificPictureRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsSpecificPictureRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesPictureResponse.class);
      }

      @Override
      public GetSpecificPictureRequest setAlt(java.lang.String alt) {
        return (GetSpecificPictureRequest) super.setAlt(alt);
      }

      @Override
      public GetSpecificPictureRequest setFields(java.lang.String fields) {
        return (GetSpecificPictureRequest) super.setFields(fields);
      }

      @Override
      public GetSpecificPictureRequest setKey(java.lang.String key) {
        return (GetSpecificPictureRequest) super.setKey(key);
      }

      @Override
      public GetSpecificPictureRequest setOauthToken(java.lang.String oauthToken) {
        return (GetSpecificPictureRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public GetSpecificPictureRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (GetSpecificPictureRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public GetSpecificPictureRequest setQuotaUser(java.lang.String quotaUser) {
        return (GetSpecificPictureRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public GetSpecificPictureRequest setUserIp(java.lang.String userIp) {
        return (GetSpecificPictureRequest) super.setUserIp(userIp);
      }

      @Override
      public GetSpecificPictureRequest set(String parameterName, Object value) {
        return (GetSpecificPictureRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the GetUsersBySubstring collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.GetUsersBySubstring.List request = sneakapic.getUsersBySubstring().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public GetUsersBySubstring getUsersBySubstring() {
    return new GetUsersBySubstring();
  }

  /**
   * The "getUsersBySubstring" collection of methods.
   */
  public class GetUsersBySubstring {

    /**
     * Create a request for the method "getUsersBySubstring.getUsersBySubstring".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link GetUsersBySubstringRequest#execute()} method to invoke the remote
     * operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsUsersBySubstringRequest}
     * @return the request
     */
    public GetUsersBySubstringRequest getUsersBySubstring(com.rom.ratethehell.api.services.sneakapic.model.RequestsUsersBySubstringRequest content) throws java.io.IOException {
      GetUsersBySubstringRequest result = new GetUsersBySubstringRequest(content);
      initialize(result);
      return result;
    }

    public class GetUsersBySubstringRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesUsersBySubstringResponse> {

      private static final String REST_PATH = "getUsersBySubstring";

      /**
       * Create a request for the method "getUsersBySubstring.getUsersBySubstring".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link GetUsersBySubstringRequest#execute()} method to invoke the
       * remote operation. <p> {@link GetUsersBySubstringRequest#initialize(com.google.api.client.google
       * apis.services.AbstractGoogleClientRequest)} must be called to initialize this instance
       * immediately after invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsUsersBySubstringRequest}
       * @since 1.13
       */
      protected GetUsersBySubstringRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsUsersBySubstringRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesUsersBySubstringResponse.class);
      }

      @Override
      public GetUsersBySubstringRequest setAlt(java.lang.String alt) {
        return (GetUsersBySubstringRequest) super.setAlt(alt);
      }

      @Override
      public GetUsersBySubstringRequest setFields(java.lang.String fields) {
        return (GetUsersBySubstringRequest) super.setFields(fields);
      }

      @Override
      public GetUsersBySubstringRequest setKey(java.lang.String key) {
        return (GetUsersBySubstringRequest) super.setKey(key);
      }

      @Override
      public GetUsersBySubstringRequest setOauthToken(java.lang.String oauthToken) {
        return (GetUsersBySubstringRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public GetUsersBySubstringRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (GetUsersBySubstringRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public GetUsersBySubstringRequest setQuotaUser(java.lang.String quotaUser) {
        return (GetUsersBySubstringRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public GetUsersBySubstringRequest setUserIp(java.lang.String userIp) {
        return (GetUsersBySubstringRequest) super.setUserIp(userIp);
      }

      @Override
      public GetUsersBySubstringRequest set(String parameterName, Object value) {
        return (GetUsersBySubstringRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the LogOff collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.LogOff.List request = sneakapic.logOff().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public LogOff logOff() {
    return new LogOff();
  }

  /**
   * The "logOff" collection of methods.
   */
  public class LogOff {

    /**
     * Create a request for the method "logOff.logOff".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link LogOffRequest#execute()} method to invoke the remote operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsLogOffRequest}
     * @return the request
     */
    public LogOffRequest logOff(com.rom.ratethehell.api.services.sneakapic.model.RequestsLogOffRequest content) throws java.io.IOException {
      LogOffRequest result = new LogOffRequest(content);
      initialize(result);
      return result;
    }

    public class LogOffRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse> {

      private static final String REST_PATH = "logOff";

      /**
       * Create a request for the method "logOff.logOff".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link LogOffRequest#execute()} method to invoke the remote
       * operation. <p> {@link LogOffRequest#initialize(com.google.api.client.googleapis.services.Abstra
       * ctGoogleClientRequest)} must be called to initialize this instance immediately after invoking
       * the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsLogOffRequest}
       * @since 1.13
       */
      protected LogOffRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsLogOffRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse.class);
      }

      @Override
      public LogOffRequest setAlt(java.lang.String alt) {
        return (LogOffRequest) super.setAlt(alt);
      }

      @Override
      public LogOffRequest setFields(java.lang.String fields) {
        return (LogOffRequest) super.setFields(fields);
      }

      @Override
      public LogOffRequest setKey(java.lang.String key) {
        return (LogOffRequest) super.setKey(key);
      }

      @Override
      public LogOffRequest setOauthToken(java.lang.String oauthToken) {
        return (LogOffRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public LogOffRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (LogOffRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public LogOffRequest setQuotaUser(java.lang.String quotaUser) {
        return (LogOffRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public LogOffRequest setUserIp(java.lang.String userIp) {
        return (LogOffRequest) super.setUserIp(userIp);
      }

      @Override
      public LogOffRequest set(String parameterName, Object value) {
        return (LogOffRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the Login collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.Login.List request = sneakapic.login().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public Login login() {
    return new Login();
  }

  /**
   * The "login" collection of methods.
   */
  public class Login {

    /**
     * Create a request for the method "login.login".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link LoginRequest#execute()} method to invoke the remote operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsLoginRequest}
     * @return the request
     */
    public LoginRequest login(com.rom.ratethehell.api.services.sneakapic.model.RequestsLoginRequest content) throws java.io.IOException {
      LoginRequest result = new LoginRequest(content);
      initialize(result);
      return result;
    }

    public class LoginRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesLoginResponse> {

      private static final String REST_PATH = "login";

      /**
       * Create a request for the method "login.login".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link LoginRequest#execute()} method to invoke the remote
       * operation. <p> {@link
       * LoginRequest#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)}
       * must be called to initialize this instance immediately after invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsLoginRequest}
       * @since 1.13
       */
      protected LoginRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsLoginRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesLoginResponse.class);
      }

      @Override
      public LoginRequest setAlt(java.lang.String alt) {
        return (LoginRequest) super.setAlt(alt);
      }

      @Override
      public LoginRequest setFields(java.lang.String fields) {
        return (LoginRequest) super.setFields(fields);
      }

      @Override
      public LoginRequest setKey(java.lang.String key) {
        return (LoginRequest) super.setKey(key);
      }

      @Override
      public LoginRequest setOauthToken(java.lang.String oauthToken) {
        return (LoginRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public LoginRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (LoginRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public LoginRequest setQuotaUser(java.lang.String quotaUser) {
        return (LoginRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public LoginRequest setUserIp(java.lang.String userIp) {
        return (LoginRequest) super.setUserIp(userIp);
      }

      @Override
      public LoginRequest set(String parameterName, Object value) {
        return (LoginRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the PollForMessages collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.PollForMessages.List request = sneakapic.pollForMessages().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public PollForMessages pollForMessages() {
    return new PollForMessages();
  }

  /**
   * The "pollForMessages" collection of methods.
   */
  public class PollForMessages {

    /**
     * Create a request for the method "pollForMessages.pollForMessages".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link PollForMessagesRequest#execute()} method to invoke the remote
     * operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsMessagesPollingRequest}
     * @return the request
     */
    public PollForMessagesRequest pollForMessages(com.rom.ratethehell.api.services.sneakapic.model.RequestsMessagesPollingRequest content) throws java.io.IOException {
      PollForMessagesRequest result = new PollForMessagesRequest(content);
      initialize(result);
      return result;
    }

    public class PollForMessagesRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesMessagesResponse> {

      private static final String REST_PATH = "pollForMessages";

      /**
       * Create a request for the method "pollForMessages.pollForMessages".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link PollForMessagesRequest#execute()} method to invoke the
       * remote operation. <p> {@link PollForMessagesRequest#initialize(com.google.api.client.googleapis
       * .services.AbstractGoogleClientRequest)} must be called to initialize this instance immediately
       * after invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsMessagesPollingRequest}
       * @since 1.13
       */
      protected PollForMessagesRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsMessagesPollingRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesMessagesResponse.class);
      }

      @Override
      public PollForMessagesRequest setAlt(java.lang.String alt) {
        return (PollForMessagesRequest) super.setAlt(alt);
      }

      @Override
      public PollForMessagesRequest setFields(java.lang.String fields) {
        return (PollForMessagesRequest) super.setFields(fields);
      }

      @Override
      public PollForMessagesRequest setKey(java.lang.String key) {
        return (PollForMessagesRequest) super.setKey(key);
      }

      @Override
      public PollForMessagesRequest setOauthToken(java.lang.String oauthToken) {
        return (PollForMessagesRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public PollForMessagesRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (PollForMessagesRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public PollForMessagesRequest setQuotaUser(java.lang.String quotaUser) {
        return (PollForMessagesRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public PollForMessagesRequest setUserIp(java.lang.String userIp) {
        return (PollForMessagesRequest) super.setUserIp(userIp);
      }

      @Override
      public PollForMessagesRequest set(String parameterName, Object value) {
        return (PollForMessagesRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the RandomPic collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.RandomPic.List request = sneakapic.randomPic().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public RandomPic randomPic() {
    return new RandomPic();
  }

  /**
   * The "randomPic" collection of methods.
   */
  public class RandomPic {

    /**
     * Create a request for the method "randomPic.randomPic".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link RandomPicRequest#execute()} method to invoke the remote operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsRandomPictureRequest}
     * @return the request
     */
    public RandomPicRequest randomPic(com.rom.ratethehell.api.services.sneakapic.model.RequestsRandomPictureRequest content) throws java.io.IOException {
      RandomPicRequest result = new RandomPicRequest(content);
      initialize(result);
      return result;
    }

    public class RandomPicRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesPictureResponse> {

      private static final String REST_PATH = "randomPic";

      /**
       * Create a request for the method "randomPic.randomPic".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link RandomPicRequest#execute()} method to invoke the remote
       * operation. <p> {@link RandomPicRequest#initialize(com.google.api.client.googleapis.services.Abs
       * tractGoogleClientRequest)} must be called to initialize this instance immediately after
       * invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsRandomPictureRequest}
       * @since 1.13
       */
      protected RandomPicRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsRandomPictureRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesPictureResponse.class);
      }

      @Override
      public RandomPicRequest setAlt(java.lang.String alt) {
        return (RandomPicRequest) super.setAlt(alt);
      }

      @Override
      public RandomPicRequest setFields(java.lang.String fields) {
        return (RandomPicRequest) super.setFields(fields);
      }

      @Override
      public RandomPicRequest setKey(java.lang.String key) {
        return (RandomPicRequest) super.setKey(key);
      }

      @Override
      public RandomPicRequest setOauthToken(java.lang.String oauthToken) {
        return (RandomPicRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public RandomPicRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (RandomPicRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public RandomPicRequest setQuotaUser(java.lang.String quotaUser) {
        return (RandomPicRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public RandomPicRequest setUserIp(java.lang.String userIp) {
        return (RandomPicRequest) super.setUserIp(userIp);
      }

      @Override
      public RandomPicRequest set(String parameterName, Object value) {
        return (RandomPicRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the Rate collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.Rate.List request = sneakapic.rate().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public Rate rate() {
    return new Rate();
  }

  /**
   * The "rate" collection of methods.
   */
  public class Rate {

    /**
     * Create a request for the method "rate.rate".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link RateRequest#execute()} method to invoke the remote operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsRatingRequest}
     * @return the request
     */
    public RateRequest rate(com.rom.ratethehell.api.services.sneakapic.model.RequestsRatingRequest content) throws java.io.IOException {
      RateRequest result = new RateRequest(content);
      initialize(result);
      return result;
    }

    public class RateRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse> {

      private static final String REST_PATH = "rate";

      /**
       * Create a request for the method "rate.rate".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link RateRequest#execute()} method to invoke the remote
       * operation. <p> {@link
       * RateRequest#initialize(com.google.api.client.googleapis.services.AbstractGoogleClientRequest)}
       * must be called to initialize this instance immediately after invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsRatingRequest}
       * @since 1.13
       */
      protected RateRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsRatingRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse.class);
      }

      @Override
      public RateRequest setAlt(java.lang.String alt) {
        return (RateRequest) super.setAlt(alt);
      }

      @Override
      public RateRequest setFields(java.lang.String fields) {
        return (RateRequest) super.setFields(fields);
      }

      @Override
      public RateRequest setKey(java.lang.String key) {
        return (RateRequest) super.setKey(key);
      }

      @Override
      public RateRequest setOauthToken(java.lang.String oauthToken) {
        return (RateRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public RateRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (RateRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public RateRequest setQuotaUser(java.lang.String quotaUser) {
        return (RateRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public RateRequest setUserIp(java.lang.String userIp) {
        return (RateRequest) super.setUserIp(userIp);
      }

      @Override
      public RateRequest set(String parameterName, Object value) {
        return (RateRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the Register collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.Register.List request = sneakapic.register().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public Register register() {
    return new Register();
  }

  /**
   * The "register" collection of methods.
   */
  public class Register {

    /**
     * Create a request for the method "register.register".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link RegisterRequest#execute()} method to invoke the remote operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsRegisterRequest}
     * @return the request
     */
    public RegisterRequest register(com.rom.ratethehell.api.services.sneakapic.model.RequestsRegisterRequest content) throws java.io.IOException {
      RegisterRequest result = new RegisterRequest(content);
      initialize(result);
      return result;
    }

    public class RegisterRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse> {

      private static final String REST_PATH = "register";

      /**
       * Create a request for the method "register.register".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link RegisterRequest#execute()} method to invoke the remote
       * operation. <p> {@link RegisterRequest#initialize(com.google.api.client.googleapis.services.Abst
       * ractGoogleClientRequest)} must be called to initialize this instance immediately after invoking
       * the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsRegisterRequest}
       * @since 1.13
       */
      protected RegisterRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsRegisterRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse.class);
      }

      @Override
      public RegisterRequest setAlt(java.lang.String alt) {
        return (RegisterRequest) super.setAlt(alt);
      }

      @Override
      public RegisterRequest setFields(java.lang.String fields) {
        return (RegisterRequest) super.setFields(fields);
      }

      @Override
      public RegisterRequest setKey(java.lang.String key) {
        return (RegisterRequest) super.setKey(key);
      }

      @Override
      public RegisterRequest setOauthToken(java.lang.String oauthToken) {
        return (RegisterRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public RegisterRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (RegisterRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public RegisterRequest setQuotaUser(java.lang.String quotaUser) {
        return (RegisterRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public RegisterRequest setUserIp(java.lang.String userIp) {
        return (RegisterRequest) super.setUserIp(userIp);
      }

      @Override
      public RegisterRequest set(String parameterName, Object value) {
        return (RegisterRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the SendMessage collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.SendMessage.List request = sneakapic.sendMessage().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public SendMessage sendMessage() {
    return new SendMessage();
  }

  /**
   * The "sendMessage" collection of methods.
   */
  public class SendMessage {

    /**
     * Create a request for the method "sendMessage.sendMessage".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link SendMessageRequest#execute()} method to invoke the remote operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsSendMessageRequest}
     * @return the request
     */
    public SendMessageRequest sendMessage(com.rom.ratethehell.api.services.sneakapic.model.RequestsSendMessageRequest content) throws java.io.IOException {
      SendMessageRequest result = new SendMessageRequest(content);
      initialize(result);
      return result;
    }

    public class SendMessageRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse> {

      private static final String REST_PATH = "sendMessage";

      /**
       * Create a request for the method "sendMessage.sendMessage".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link SendMessageRequest#execute()} method to invoke the remote
       * operation. <p> {@link SendMessageRequest#initialize(com.google.api.client.googleapis.services.A
       * bstractGoogleClientRequest)} must be called to initialize this instance immediately after
       * invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsSendMessageRequest}
       * @since 1.13
       */
      protected SendMessageRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsSendMessageRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse.class);
      }

      @Override
      public SendMessageRequest setAlt(java.lang.String alt) {
        return (SendMessageRequest) super.setAlt(alt);
      }

      @Override
      public SendMessageRequest setFields(java.lang.String fields) {
        return (SendMessageRequest) super.setFields(fields);
      }

      @Override
      public SendMessageRequest setKey(java.lang.String key) {
        return (SendMessageRequest) super.setKey(key);
      }

      @Override
      public SendMessageRequest setOauthToken(java.lang.String oauthToken) {
        return (SendMessageRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public SendMessageRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (SendMessageRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public SendMessageRequest setQuotaUser(java.lang.String quotaUser) {
        return (SendMessageRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public SendMessageRequest setUserIp(java.lang.String userIp) {
        return (SendMessageRequest) super.setUserIp(userIp);
      }

      @Override
      public SendMessageRequest set(String parameterName, Object value) {
        return (SendMessageRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the UpdatePictures collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.UpdatePictures.List request = sneakapic.updatePictures().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public UpdatePictures updatePictures() {
    return new UpdatePictures();
  }

  /**
   * The "updatePictures" collection of methods.
   */
  public class UpdatePictures {

    /**
     * Create a request for the method "updatePictures.updatePictures".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link UpdatePicturesRequest#execute()} method to invoke the remote
     * operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsUpdatePicturesRequest}
     * @return the request
     */
    public UpdatePicturesRequest updatePictures(com.rom.ratethehell.api.services.sneakapic.model.RequestsUpdatePicturesRequest content) throws java.io.IOException {
      UpdatePicturesRequest result = new UpdatePicturesRequest(content);
      initialize(result);
      return result;
    }

    public class UpdatePicturesRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesUpdatePicturesResponse> {

      private static final String REST_PATH = "updatePictures";

      /**
       * Create a request for the method "updatePictures.updatePictures".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link UpdatePicturesRequest#execute()} method to invoke the
       * remote operation. <p> {@link UpdatePicturesRequest#initialize(com.google.api.client.googleapis.
       * services.AbstractGoogleClientRequest)} must be called to initialize this instance immediately
       * after invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsUpdatePicturesRequest}
       * @since 1.13
       */
      protected UpdatePicturesRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsUpdatePicturesRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesUpdatePicturesResponse.class);
      }

      @Override
      public UpdatePicturesRequest setAlt(java.lang.String alt) {
        return (UpdatePicturesRequest) super.setAlt(alt);
      }

      @Override
      public UpdatePicturesRequest setFields(java.lang.String fields) {
        return (UpdatePicturesRequest) super.setFields(fields);
      }

      @Override
      public UpdatePicturesRequest setKey(java.lang.String key) {
        return (UpdatePicturesRequest) super.setKey(key);
      }

      @Override
      public UpdatePicturesRequest setOauthToken(java.lang.String oauthToken) {
        return (UpdatePicturesRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public UpdatePicturesRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (UpdatePicturesRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public UpdatePicturesRequest setQuotaUser(java.lang.String quotaUser) {
        return (UpdatePicturesRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public UpdatePicturesRequest setUserIp(java.lang.String userIp) {
        return (UpdatePicturesRequest) super.setUserIp(userIp);
      }

      @Override
      public UpdatePicturesRequest set(String parameterName, Object value) {
        return (UpdatePicturesRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * An accessor for creating requests from the UpdateProfile collection.
   *
   * <p>The typical use is:</p>
   * <pre>
   *   {@code Sneakapic sneakapic = new Sneakapic(...);}
   *   {@code Sneakapic.UpdateProfile.List request = sneakapic.updateProfile().list(parameters ...)}
   * </pre>
   *
   * @return the resource collection
   */
  public UpdateProfile updateProfile() {
    return new UpdateProfile();
  }

  /**
   * The "updateProfile" collection of methods.
   */
  public class UpdateProfile {

    /**
     * Create a request for the method "updateProfile.updateProfile".
     *
     * This request holds the parameters needed by the the sneakapic server.  After setting any optional
     * parameters, call the {@link UpdateProfileRequest#execute()} method to invoke the remote
     * operation.
     *
     * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsUpdateProfileRequest}
     * @return the request
     */
    public UpdateProfileRequest updateProfile(com.rom.ratethehell.api.services.sneakapic.model.RequestsUpdateProfileRequest content) throws java.io.IOException {
      UpdateProfileRequest result = new UpdateProfileRequest(content);
      initialize(result);
      return result;
    }

    public class UpdateProfileRequest extends SneakapicRequest<com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse> {

      private static final String REST_PATH = "updateProfile";

      /**
       * Create a request for the method "updateProfile.updateProfile".
       *
       * This request holds the parameters needed by the the sneakapic server.  After setting any
       * optional parameters, call the {@link UpdateProfileRequest#execute()} method to invoke the
       * remote operation. <p> {@link UpdateProfileRequest#initialize(com.google.api.client.googleapis.s
       * ervices.AbstractGoogleClientRequest)} must be called to initialize this instance immediately
       * after invoking the constructor. </p>
       *
       * @param content the {@link com.rom.ratethehell.api.services.sneakapic.model.RequestsUpdateProfileRequest}
       * @since 1.13
       */
      protected UpdateProfileRequest(com.rom.ratethehell.api.services.sneakapic.model.RequestsUpdateProfileRequest content) {
        super(Sneakapic.this, "POST", REST_PATH, content, com.rom.ratethehell.api.services.sneakapic.model.ResponsesGeneralResponse.class);
      }

      @Override
      public UpdateProfileRequest setAlt(java.lang.String alt) {
        return (UpdateProfileRequest) super.setAlt(alt);
      }

      @Override
      public UpdateProfileRequest setFields(java.lang.String fields) {
        return (UpdateProfileRequest) super.setFields(fields);
      }

      @Override
      public UpdateProfileRequest setKey(java.lang.String key) {
        return (UpdateProfileRequest) super.setKey(key);
      }

      @Override
      public UpdateProfileRequest setOauthToken(java.lang.String oauthToken) {
        return (UpdateProfileRequest) super.setOauthToken(oauthToken);
      }

      @Override
      public UpdateProfileRequest setPrettyPrint(java.lang.Boolean prettyPrint) {
        return (UpdateProfileRequest) super.setPrettyPrint(prettyPrint);
      }

      @Override
      public UpdateProfileRequest setQuotaUser(java.lang.String quotaUser) {
        return (UpdateProfileRequest) super.setQuotaUser(quotaUser);
      }

      @Override
      public UpdateProfileRequest setUserIp(java.lang.String userIp) {
        return (UpdateProfileRequest) super.setUserIp(userIp);
      }

      @Override
      public UpdateProfileRequest set(String parameterName, Object value) {
        return (UpdateProfileRequest) super.set(parameterName, value);
      }
    }

  }

  /**
   * Builder for {@link Sneakapic}.
   *
   * <p>
   * Implementation is not thread-safe.
   * </p>
   *
   * @since 1.3.0
   */
  public static final class Builder extends com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient.Builder {

    /**
     * Returns an instance of a new builder.
     *
     * @param transport HTTP transport, which should normally be:
     *        <ul>
     *        <li>Google App Engine:
     *        {@code com.google.api.client.extensions.appengine.http.UrlFetchTransport}</li>
     *        <li>Android: {@code newCompatibleTransport} from
     *        {@code com.google.api.client.extensions.android.http.AndroidHttp}</li>
     *        <li>Java: {@link com.google.api.client.googleapis.javanet.GoogleNetHttpTransport#newTrustedTransport()}
     *        </li>
     *        </ul>
     * @param jsonFactory JSON factory, which may be:
     *        <ul>
     *        <li>Jackson: {@code com.google.api.client.json.jackson2.JacksonFactory}</li>
     *        <li>Google GSON: {@code com.google.api.client.json.gson.GsonFactory}</li>
     *        <li>Android Honeycomb or higher:
     *        {@code com.google.api.client.extensions.android.json.AndroidJsonFactory}</li>
     *        </ul>
     * @param httpRequestInitializer HTTP request initializer or {@code null} for none
     * @since 1.7
     */
    public Builder(com.google.api.client.http.HttpTransport transport, com.google.api.client.json.JsonFactory jsonFactory,
        com.google.api.client.http.HttpRequestInitializer httpRequestInitializer) {
      super(
          transport,
          jsonFactory,
          DEFAULT_ROOT_URL,
          DEFAULT_SERVICE_PATH,
          httpRequestInitializer,
          false);
    }

    /** Builds a new instance of {@link Sneakapic}. */
    @Override
    public Sneakapic build() {
      return new Sneakapic(this);
    }

    @Override
    public Builder setRootUrl(String rootUrl) {
      return (Builder) super.setRootUrl(rootUrl);
    }

    @Override
    public Builder setServicePath(String servicePath) {
      return (Builder) super.setServicePath(servicePath);
    }

    @Override
    public Builder setHttpRequestInitializer(com.google.api.client.http.HttpRequestInitializer httpRequestInitializer) {
      return (Builder) super.setHttpRequestInitializer(httpRequestInitializer);
    }

    @Override
    public Builder setApplicationName(String applicationName) {
      return (Builder) super.setApplicationName(applicationName);
    }

    @Override
    public Builder setSuppressPatternChecks(boolean suppressPatternChecks) {
      return (Builder) super.setSuppressPatternChecks(suppressPatternChecks);
    }

    @Override
    public Builder setSuppressRequiredParameterChecks(boolean suppressRequiredParameterChecks) {
      return (Builder) super.setSuppressRequiredParameterChecks(suppressRequiredParameterChecks);
    }

    @Override
    public Builder setSuppressAllChecks(boolean suppressAllChecks) {
      return (Builder) super.setSuppressAllChecks(suppressAllChecks);
    }

    /**
     * Set the {@link SneakapicRequestInitializer}.
     *
     * @since 1.12
     */
    public Builder setSneakapicRequestInitializer(
        SneakapicRequestInitializer sneakapicRequestInitializer) {
      return (Builder) super.setGoogleClientRequestInitializer(sneakapicRequestInitializer);
    }

    @Override
    public Builder setGoogleClientRequestInitializer(
        com.google.api.client.googleapis.services.GoogleClientRequestInitializer googleClientRequestInitializer) {
      return (Builder) super.setGoogleClientRequestInitializer(googleClientRequestInitializer);
    }
  }
}
